var mongodb = require('./db'),
    markdown = require('markdown').markdown;

function Barrage(barrage) {
  this.barrage = barrage;
}

module.exports = Barrage;//方法接口

//获取20条最新动弹
Barrage.get = function(callback) {
  //打开数据库
  mongodb.open(function (err, db) {
    if (err) {
      return callback(err);
    }
    //读取 barrages 集合
    db.collection('barrages', function (err, collection) {
      if (err) {
        mongodb.close();
        return callback(err);
      }
      collection.find({},{
        skip: 0,
        limit: 20
      }).sort({
        time: -1
      }).toArray(function (err, docs) {
        mongodb.close();
        if (err) {
          return callback(err);
        }
        callback(null, docs);//返回查询弹幕信息
      });
    });
  });
}

//存储一条动弹信息
Barrage.prototype.save = function(callback) {
  var barrage = this.barrage;

  //打开数据库
  mongodb.open(function (err, db) {
    if (err) {
      return callback(err);
    }
    //读取 barrages 集合,加入留言信息
    db.collection('barrages', function (err, collection) {
      if (err) {
        mongodb.close();
        return callback(err);
      }
      //查找文档，并把一条动弹信息添加到该文档的 barrages 数组里
      collection.insert(barrage,{
        safe: true
      } , function (err) {
          mongodb.close();
          if (err) {
            return callback(err);
          }
          callback(null);
      });
    });
  });
}